# Copyright 2023 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
"""
Optimizer.

Provide common optimizers for training, such as SGD, Adam.
The optimizer is used to calculate and update the gradients.
"""
from __future__ import absolute_import

from mindspore.experimental.optim.optimizer import Optimizer
from mindspore.experimental.optim.adamw import AdamW
from mindspore.experimental.optim.sgd import SGD
from mindspore.experimental.optim.adam import Adam
from mindspore.experimental.optim.adadelta import Adadelta
from mindspore.experimental.optim.adagrad import Adagrad
from mindspore.experimental.optim.asgd import ASGD
from mindspore.experimental.optim.adamax import Adamax
from mindspore.experimental.optim.rmsprop import RMSprop
from mindspore.experimental.optim.rprop import Rprop
from mindspore.experimental.optim.radam import RAdam
from mindspore.experimental.optim.nadam import NAdam

from mindspore.experimental.optim import lr_scheduler


__all__ = ['Optimizer', 'AdamW', 'SGD', 'Adam', 'Adadelta', 'Adagrad',
           'ASGD', 'Adamax', 'RMSprop', 'Rprop', 'RAdam', 'NAdam']
